home *** CD-ROM | disk | FTP | other *** search
/ Holt Researcher: American History / Holt Researcher: American History.iso / pc / modules / search.dxr / 00003_search class.ls < prev    next >
Encoding:
Text File  |  2000-01-18  |  5.2 KB  |  188 lines

  1. property pCloseBoxObj, pHelpButtonObj, pContext, pFindButtonObj, pClearAllButtonObj, pPreviousButtonObj, pNextButtonObj, pMenuBankObj, pRolloverTextObj, pLetterSelectionBox, pScrollbarObj, pkListSprite, pHeadingLineNumList, pTitleCurrentHeading
  2.  
  3. on getCloseBoxObj me
  4.   return pCloseBoxObj
  5. end
  6.  
  7. on getFindButtonObj me
  8.   return pFindButtonObj
  9. end
  10.  
  11. on getclearAllButtonObj me
  12.   return pClearAllButtonObj
  13. end
  14.  
  15. on getHelpButtonObj me
  16.   return pHelpButtonObj
  17. end
  18.  
  19. on getNextButtonObj me
  20.   return pNextButtonObj
  21. end
  22.  
  23. on getPreviousButtonObj me
  24.   return pPreviousButtonObj
  25. end
  26.  
  27. on getMenuBankObj me
  28.   return pMenuBankObj
  29. end
  30.  
  31. on getRolloverTextObj me
  32.   return pRolloverTextObj
  33. end
  34.  
  35. on getContext me
  36.   return pContext
  37. end
  38.  
  39. on getScrollbarObj me
  40.   return pScrollbarObj
  41. end
  42.  
  43. on new me
  44.   pCloseBoxObj = new(script("search close box button"), "close box", "Global", 2, the loc of sprite 2)
  45.   Inscope(pCloseBoxObj)
  46.   pHelpButtonObj = new(script("Help Button"), "search help", "Internal", 32, the loc of sprite 32)
  47.   Inscope(pHelpButtonObj)
  48.   pFindButtonObj = new(script("Find Button"), "Find Button", "Internal", 34, the loc of sprite 34)
  49.   pClearAllButtonObj = new(script("ClearAll Button"), "ClearAll Button", "Internal", 35, the loc of sprite 35)
  50.   rolloverList = []
  51.   addAt(rolloverList, 2, 16)
  52.   addAt(rolloverList, 32, 19)
  53.   pRolloverTextObj = new(script("rollover text"), rolloverList)
  54.   pMenuBankObj = new(script("menu bank class"))
  55.   pLetterSelectionBox = 6
  56.   pkListSprite = 4
  57.   set the cursor of sprite 2 to [member("point hand"), member("point hand mask")]
  58.   return me
  59. end
  60.  
  61. on dispose me
  62. end
  63.  
  64. on enterSearchContext me
  65.   pContext = #search
  66.   Inscope(pFindButtonObj)
  67.   disable(pFindButtonObj)
  68.   Inscope(pClearAllButtonObj)
  69.   disable(pClearAllButtonObj)
  70.   enable(pHelpButtonObj)
  71.   Inscope(pMenuBankObj)
  72. end
  73.  
  74. on exitSearchContext me
  75.   outScope(pFindButtonObj)
  76.   outScope(pClearAllButtonObj)
  77.   disable(pHelpButtonObj)
  78.   outScope(pMenuBankObj)
  79. end
  80.  
  81. on enterTitlesContext me
  82.   pContext = #titles
  83.   pTitleCurrentHeading = 1
  84.   xMember = member("categories titles list", "Update.cst")
  85.   DisplayTextField(me, xMember, rect(5, 59, 363, 226))
  86.   pPreviousButtonObj = new(script("Previous Button"), "previous section", "Internal", 6, the loc of sprite 6)
  87.   Inscope(pPreviousButtonObj)
  88.   pNextButtonObj = new(script("Next Button"), "next section", "Internal", 7, the loc of sprite 7)
  89.   Inscope(pNextButtonObj)
  90.   FindHeadingLines(me)
  91.   setupScrollbar(me)
  92. end
  93.  
  94. on exitTitlesContext me
  95.   puppetSprite(4, 0)
  96.   outScope(pPreviousButtonObj)
  97.   condemn(pPreviousButtonObj)
  98.   pPreviousButtonObj = 0
  99.   outScope(pNextButtonObj)
  100.   condemn(pNextButtonObj)
  101.   pNextButtonObj = 0
  102.   dismantleScrollbar(me)
  103. end
  104.  
  105. on enterKeywordsContext me
  106.   pContext = #keywords
  107.   xMember = member("keywords list", "Update.cst")
  108.   DisplayTextField(me, xMember, rect(5, 59, 365, 240))
  109.   puppetSprite(pLetterSelectionBox, 1)
  110.   bedSprite = 9
  111.   TextSprite = 4
  112.   hiliteSprite = 3
  113.   pScrollbarObj = new(script("scroll to end subclass"), bedSprite, TextSprite, hiliteSprite)
  114.   Inscope(pScrollbarObj)
  115. end
  116.  
  117. on exitKeywordsContext me
  118.   puppetSprite(pLetterSelectionBox, 0)
  119.   puppetSprite(4, 0)
  120.   dismantleScrollbar(me)
  121. end
  122.  
  123. on setupScrollbar me
  124.   bedSprite = 9
  125.   TextSprite = 4
  126.   hiliteSprite = 3
  127.   pScrollbarObj = new(script("text scroll bar"), bedSprite, TextSprite, hiliteSprite)
  128.   Inscope(pScrollbarObj)
  129. end
  130.  
  131. on dismantleScrollbar me
  132.   outScope(pScrollbarObj)
  133.   pScrollbarObj = 0
  134. end
  135.  
  136. on FindHeadingLines me
  137.   xMember = member("categories titles list")
  138.   TitlesList = member(xMember).text
  139.   lineHeight = the textHeight of member xMember
  140.   HeadingText = member("heading list", "Update.cst").text
  141.   MaxCount = the number of lines in HeadingText
  142.   pHeadingLineNumList = []
  143.   repeat with rc = 1 to MaxCount
  144.     CharNum = offset(line rc of HeadingText, TitlesList)
  145.     if CharNum > 0 then
  146.       charLoc = charPosToLoc(member(xMember), CharNum)
  147.       lineNumber = locVToLinePos(member(xMember), charLoc.locV)
  148.       if the machineType = 256 then
  149.         LineNumberFloat = lineNumber + (lineNumber * 2.0 / (lineHeight + 0.0))
  150.         LineNumberInt = lineNumber + (lineNumber * 2 / lineHeight)
  151.         if (LineNumberFloat - LineNumberInt) > 0 then
  152.           lineNumber = LineNumberInt + 1
  153.         else
  154.           lineNumber = LineNumberInt
  155.         end if
  156.         SearchString = line rc of HeadingText
  157.         lineNumber = WidenLineSearch(the text of field xMember, SearchString, lineNumber)
  158.       end if
  159.       append(pHeadingLineNumList, lineNumber)
  160.     end if
  161.   end repeat
  162. end
  163.  
  164. on GoTitleSection me, direction
  165.   pTitleCurrentHeading = pTitleCurrentHeading + direction
  166.   if pTitleCurrentHeading < 1 then
  167.     pTitleCurrentHeading = count(pHeadingLineNumList)
  168.   end if
  169.   if pTitleCurrentHeading > count(pHeadingLineNumList) then
  170.     pTitleCurrentHeading = 1
  171.   end if
  172.   LineNum = getAt(pHeadingLineNumList, pTitleCurrentHeading)
  173.   setThumb(pScrollbarObj, LineNum)
  174. end
  175.  
  176. on DisplayTextField me, xMember, xRect
  177.   kSprite = 4
  178.   puppetSprite(kSprite, 1)
  179.   if the machineType = 256 then
  180.     xRect = xRect + rect(0, -1, 0, 0)
  181.   end if
  182.   set the textHeight of member xMember to 14
  183.   member(xMember).scrollTop = 0
  184.   member(xMember).rect = xRect
  185.   set the member of sprite kSprite to xMember
  186.   set the loc of sprite kSprite to point(xRect.left, xRect.top)
  187. end
  188.